/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package org.sadhar.sipp.laporananggaranpendapatanuangujiantakknwisuda;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import org.sadhar.sia.common.ClassConnection;

/**
 *
 * @author kris
 */
public class LaporanAnggaranPendapatanUangUjianTAKKNWisudaDAOImpl implements LaporanAnggaranPendapatanUangUjianTAKKNWisudaDAO {

    public LaporanAnggaranPendapatanUangUjianTAKKNWisudaDAOImpl() {
        ClassConnection.getTransactionProxyFactoryBean().setTarget(this);
    }

    public List<Map> getTahunAnggaran() throws Exception {
        String sql = "select DISTINCT tahunAnggaran from ppmk.posAnggaranPendapatanUnit";
        List<Map> result = ClassConnection.getJdbc().queryForList(sql);
        return result;
    }

    public List<Map> getReport(String tahunAwal, String tahunAkhir, String kdUnit, String kdTagih) throws Exception {
        List<Map> result = new ArrayList<Map>();
        String sql = "select puk.prediksiJmlMhsYgUjian,puk.tarif,uk.Nama_unit_kerja,puk.periode,puk.prosentase,(puk.prediksiJmlMhsYgUjian*puk.tarif) " +
                " AS jumlah_anggaran,pu.tahunAnggaran, pp.posPendapatan from ppmk.anggaranPendapatanUjianAkhirKKN puk,ppmk.posAnggaranPendapatanUnit pu, " +
                " ppmk.posPendapatan pp, kamus.unkerja  uk where pu.idPosAnggaranPendapatanUnit = puk.idPosAnggaranPendapatanUnit " +
                " and pp.idPosPendapatan = pu.idPosPendapatan and uk.Kd_unit_kerja = pu.kodeUnitKerja " +
                " AND pu.tahunAnggaran>=? AND " +
                " pu.tahunAnggaran<=?";

        if (!kdUnit.equals("")) {
            System.out.println("kd unit dijalankan" + kdUnit);
            sql += " AND uk.Kd_unit_kerja=? ";
            result = ClassConnection.getJdbc().queryForList(sql, new Object[]{tahunAwal, tahunAkhir, kdUnit});
        } else if (!kdTagih.equals("")) {
            System.out.println("idPosPendapatan dijalankan" + kdTagih);
            sql += " AND pp.idPosPendapatan=?";
            result = ClassConnection.getJdbc().queryForList(sql, new Object[]{tahunAwal, tahunAkhir, kdTagih});
        } else if (!kdUnit.equals("") && !kdTagih.equals("")) {
            sql += " AND uk.Kd_unit_kerja=? AND pp.idPosPendapatan=?";
            result = ClassConnection.getJdbc().queryForList(sql, new Object[]{tahunAwal, tahunAkhir, kdUnit, kdTagih});
        } else {
            result = ClassConnection.getJdbc().queryForList(sql, new Object[]{tahunAwal, tahunAkhir});
        }
        return result;
    }

    public List<Map> getAllUnitKerja() throws Exception {
        List<Map> result = ClassConnection.getJdbc().queryForList("SELECT *FROM kamus.unkerja");
        return result;
    }

    public List<Map> getAllJenisPendapatan() throws Exception {
        List<Map> result = ClassConnection.getJdbc().queryForList("SELECT *FROM ppmk.posPendapatan pp where pp.idPosPendapatan=6 or pp.idPosPendapatan=7 or pp.idPosPendapatan=9");
        return result;
    }
}
